fix(NODE-6763): pass WriteConcernOptions instead on WriteConcernSettings #4421
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
That PR should fix case of loosing write-concern options while using
timeoutMSoption.WriteConcern.fromOptionsstatic method accepts 3 options formats:WriteConcernOptionsobjectWriteConcerninstanceWtypeBut in case of using
timeoutMSoptions, utils functionresolveOptionscalls (link to code)WriteConcern.fromOptionswith options, which looks likeWriteConcerninstance, but there is no instance and more look likeWriteConcernSettingstype:So that call return
undefinedas "parsing failed" and command losses write-concern context.What is changing?
I changed options format to be consistent with
WriteConcern.fromOptionstype and useWriteConcernOptionsformat.Is there new documentation needed for these changes?
No.
What is the motivation for this change?
It's a probably bug.
I used mongodb driver within mongoose and find out
updateManycommand withwriteConcernandtimeoutMSoptions does not pass write-concern context toCommanStartedEvent. This small fix should be helpful.Release Highlight
WriteConcern omitted with timeoutMS is provided
When timeoutMS and a write concern were provided, the writeConcern was incorrectly omitted from the final command executed by the driver.
Thanks @stepanho for the contribution!
Double check the following
npm run check:lintscripttype(NODE-xxxx)[!]: descriptionfeat(NODE-1234)!: rewriting everything in coffeescript